// 3. Provide / Inject（依赖注入）
//     祖先组件通过 provide 提供数据，后代组件通过 inject 注入。

//     Vue 2：选项式 API。

//     Vue 3：支持 Composition API（provide/inject 函数）。

// 祖先组件
export default {
  provide() {
    return { theme: 'dark' };
  },
  // Vue 3 的 setup 写法：
  // setup() { provide('theme', 'dark'); }
};

// 后代组件
export default {
  inject: ['theme'],
  // Vue 3 的 setup 写法：
  // setup() { const theme = inject('theme'); }
};


// 4. Event Bus（全局事件总线）
  // Vue 2：通过一个空的 Vue 实例作为中央事件总线。
  // Vue 3：因移除 $on/$off，推荐使用第三方库（如 mitt）。

  // Vue 2
  const bus = new Vue();
  bus.$emit('event', data);  // 发送事件
  bus.$on('event', callback); // 监听事件

  // Vue 3 (使用 mitt)
    import mitt from 'mitt';
    const bus = mitt();
    bus.emit('event', data);
    bus.on('event', callback);

    bus.$off('custom-event'); // 最好销毁监听，防止内存泄漏